#include <iostream>
#include <cmath>

using namespace std;

typedef long long LL;

const int N = 1e6 + 10;

int l, r;
int p[N], pos; bool st[N];
int sum; bool ret[N];

void get_prime()
{
	int n = sqrt(r);
	for(LL i = 2; i <= n; i++)
	{
		if(!st[i]) 
		{
			p[++pos] = i;
			for(LL j = i * i; j <= n; j += i)
			{
				st[j] = true;
			}
		}
		
	}
}

int main()
{
	cin >> l >> r;
	l = l == 1 ? 2 : l;
	
	get_prime(); // 1 - sqrt(r)
	
	for(int i = 1; i <= pos; i++)
	{
		LL x = p[i];
		for(LL j = max(x * 2, (l + x - 1) / x * x); j <= r; j += x)
		{
			ret[j - l] = true;	
		}	
	} 
	for(int i = l; i <= r; i++)
	{
		if(!ret[i - l]) sum++;
	}
	cout << sum << endl;
	return 0;
}
